package com.xebest.web.mapper.read;

import com.xebest.web.form.XeVenAfterSaleQueryForm;
import com.xebest.web.model.XeVenAfterSaleEntity;
import com.xebest.web.model.XeVenOrderInfoEntity;
import com.xebest.web.view.XeVenAfterSaleInfoView;
import com.xebest.web.view.XeVenAfterSaleView;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 售后单相关ReadMapper
 *
 * @author chenjing
 */
public interface XeVenAfterSaleReadMapper {

    /**
     * 根据查询条件查询售后单列表
     *
     * @author chenjing
     */
    List<XeVenAfterSaleView> queryAfterSaleList(XeVenAfterSaleQueryForm entity);

    /**
     * 根据orderid查询订单信息
     *
     * @author chenjing
     */
    XeVenOrderInfoEntity queryOrderInfoByOrderId(@Param("orderId") String orderId, @Param("userCode") String userCode);

    /**
     * 根据售后单号查询售后单信息
     *
     * @author chenjing
     */
    XeVenAfterSaleEntity selectByPrimaryKey(@Param("afterSalesCode") String afterSalesCode, @Param("userCode") String userCode);

    /**
     * 根据售后单号查询售后单信息 带订单信息（编辑售后单时使用）
     *
     * @author chenjing
     */
    XeVenAfterSaleInfoView queryAfterSaleInfo(@Param("afterSalesCode") String afterSalesCode, @Param("userCode") String userCode);

    /**
     * 根据售后单号列表查询对应的售后单列表
     *
     * @author chenjing
     */
    List<XeVenAfterSaleEntity> queryAfterSaleListByCods(@Param("formCodes") String[] formCodes, @Param("userCode") String userCode);

    /**
     * 根据订单号统计售后单
     */
    Long selectAfterSaleByOrderId(String orderId);

}